/*
 * @lc app=leetcode.cn id=50 lang=c
 *
 * [50] Pow(x, n)
 */

// @lc code=start
double myPow(double x, int n)
{
    if (n == 0 || x == 1.0)
    {
        return 1.0;
    }
    if (n == 1)
    {
        return x;
    }
    if (n == -1)
    {
        return 1 / myPow(x, -n);
    }
    double t = myPow(x, n >> 1);
    return (n & 1 ? x : 1) * t * t;
}
// @lc code=end
